package pe.edu.upc.studio.negocio;

import java.util.ArrayList;
import java.util.Collection;

import pe.edu.upc.studio.dao.ReservaDAO;
import pe.edu.upc.studio.dao.UsuarioDAO;
import pe.edu.upc.studio.excepcion.DAOExcepcion;
import pe.edu.upc.studio.modelo.Cliente;
import pe.edu.upc.studio.modelo.Reserva;
import pe.edu.upc.studio.modelo.Usuario;

public class ReservaSalaNegocio {
	// Historia Antonio
	public boolean login(Usuario Admin) throws DAOExcepcion {
		boolean existe;
		UsuarioDAO AdminDAO = new UsuarioDAO();
		try {
			existe = AdminDAO.login(Admin);

		} catch (DAOExcepcion e) {
			existe = false;
			throw e;
		}
		return existe;

	}

	public void RegistrarCliente(Integer idUsuario, String DNI, String Nombres,
			String Email, String FecNac, String Clave, Integer IdTipo)
			throws DAOExcepcion {

		Cliente re = new Cliente();
		re.setIdUsuario(idUsuario);
		re.setDNI(DNI);
		re.setNombres(Nombres);
		re.setEmail(Email);
		re.setFechaNac(FecNac);
		re.setClave(Clave);
		re.setIdTipo(IdTipo);

		UsuarioDAO dao = new UsuarioDAO();
		try {
			dao.insertar(re);
		} catch (DAOExcepcion e) {
			throw e;
		}

	}

	public Usuario obtenerUsuario(int id) throws DAOExcepcion {

		UsuarioDAO dao = new UsuarioDAO();
		Usuario pe = new Usuario();
		try {
			pe = dao.ObtenerUsuario(id);
		} catch (DAOExcepcion e) {
			throw e;
		}
		return pe;
	}

	public Reserva obtenerReserva(int id) throws DAOExcepcion {

		ReservaDAO dao = new ReservaDAO();
		Reserva re = new Reserva();
		try {
			re = dao.ObtenerReserva(id);
		} catch (DAOExcepcion e) {
			throw e;
		}
		return re;
	}

	public Reserva CancelarReserva(int idReserva) throws DAOExcepcion {

		ReservaDAO dao = new ReservaDAO();
		try {
			dao.ActualizaEstado(idReserva);
		} catch (DAOExcepcion e) {
			throw e;
		}
		return null;

	}

	public Collection<Reserva> listarReservas() throws DAOExcepcion {

		ReservaDAO dao = new ReservaDAO();
		Collection<Reserva> lista = new ArrayList<Reserva>();
		try {
			lista = dao.listarReservas();

		} catch (DAOExcepcion e) {

			throw e;
		}
		return lista;
	}

}
